#include <stdlib.h>
#include <stdio.h>


void fusionSequence (FILE * entree1, FILE * entree2, FILE * sortie)
/*Preconditions:
	-entree1 = flot ouvert en lecture sur un fichier au format txt contenat une sequence triee d'entiers (séparés par des espaces)
	-entree2 = flot ouvert en lecture sur un fichier au format txt contenat une sequence triee d'entiers (séparés par des espaces), pas forcément de même longueur que celle dans entree1
	-sortie  = flot ouvert en écriture sur un fichier txt
Postcondition: écriture sur 'sortie' d'une sequence triée d'entiers resultant de la fusion des séquences lues sur f1 et f2.*/
{
	int a,b, e1, e2;

	e1=fscanf (entree1, "%d", &a);
	e2=fscanf (entree2, "%d", &b);

	while ((e1 == 1) && (e2 == 1)) 
	{
		if (a < b) 
		{
			fprintf(sortie, "%d ", a);
			e1=fscanf (entree1, "%d", &a);
		}
		else 
		{
			 fprintf(sortie, "%d " , b);
			 e2=fscanf (entree2, "%d", &b);
		}
	}

	while ((e1 != 1)&&(e2 == 1))
	{
		fprintf(sortie, "%d " , b);
		e2=fscanf (entree2, "%d", &b);
	}


	while ((e1 == 1)&&(e2 != 1))
	{
		fprintf(sortie, "%d " , a);
		e1=fscanf (entree1, "%d", &a);
	}

}


int main ()
{	
	FILE * mono1, * mono2, * sortie;
	mono1 = fopen("monotonie1", "r");// ouverture des fichiers.
	mono2 = fopen("monotonie2", "r");
	sortie = fopen("final","w");
	fusionSequence(mono1, mono2, sortie);//appele de la fonction fusionSequence.
	fclose (mono1);
	fclose (mono2);
	fclose (sortie);
	return 0;
}


